﻿using System;
using System.Collections.Generic;
using System.Text;

namespace ihm
{
    public class Commande
    {
        public enum TypeProduit { A, B }
        public enum EtatCommande { EnAttente, EnCours, Termine }
        private int numLot;
        private TypeProduit typeProduit;
        private EtatCommande etat;
        private int nbPalette;
        private int nbCartonParPalette;
        private int nbPieceParCarton;
        private int seuilRebut;

        public int NumLot { get { return this.numLot; } set { this.numLot = value; } }
        public TypeProduit TypeProduit_t { get { return this.typeProduit; } set { this.typeProduit = value; } }
        public EtatCommande Etat { get { return this.etat; } set { this.etat = value; } }
        public int NbPalette { get { return this.nbPalette; } set { this.nbPalette = value; } }
        public int NbCartonParPalette { get { return this.nbCartonParPalette; } set { this.nbCartonParPalette = value; } }
        public int NbPieceParCarton { get { return this.nbPieceParCarton; } set { this.nbPieceParCarton = value; } }
        public int SeuilRebut { get { return this.seuilRebut; } set { this.seuilRebut = value; } }

        public Commande(int _numLot, TypeProduit _typeProduit, int _nbPalette, int _nbCartonParPalette, int _nbPieceParCarton, int _seuilRebut)
        {
            this.numLot = _numLot;
            this.typeProduit = _typeProduit;
            this.nbPalette = _nbPalette;
            this.nbCartonParPalette = _nbCartonParPalette;
            this.nbPieceParCarton = _nbPieceParCarton;
            this.etat = Commande.EtatCommande.EnAttente;
            this.seuilRebut = _seuilRebut;
        }

        //Permet de faire un affichage correct dans l'IHM
        public String EtatToString()
        {
            switch (etat)
            {
                case EtatCommande.EnAttente:
                    return "En attente";
                case EtatCommande.EnCours:
                    return "En cours";
                case EtatCommande.Termine:
                    return "Terminé";
                default:
                    return "Etat inconnu";
            }
        }
    }
}
